# define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdbool.h>

bool isValid(char* s) {
    char arr[10000] = { 0 };
    int i = 0;
    int j = 0;
    while (s[i])
    {
        if (s[i] == '(' || s[i] == '[' || s[i] == '{')
        {
            arr[j] = s[i];
            j++;
        }
        else
        {
            if (j == 0)
            {
                return false;
            }
            if (s[i] == ')')
            {
                if (arr[j - 1] == '(')
                {
                    j--;
                }
                else
                {
                    return false;
                }
            }
            else if (s[i] == ']')
            {
                if (arr[j - 1] == '[')
                {
                    j--;
                }
                else
                {
                    return false;
                }
            }
            else if (s[i] == '}')
            {
                if (arr[j - 1] == '{')
                {
                    j--;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
        }
        i++;
    }
    if (j != 0)
    {
        return false;
    }
    return true;
}